import axios from 'axios'
import BigNum from 'json-bigint'
axios.defaults.baseURL = 'http://api-toutiao-web.itheima.net'
// 添加一个请求拦截器
axios.interceptors.request.use(function (config) {
  // 所有的请求发出去之前，都会进入这个函数
  // config就是本次请求采用的配置
  // console.log('有一个axios请求', config)
  // 如果本地有token，就带上
  const tokenStr = localStorage.getItem('myStr')
  if (tokenStr) {
  // 一个请求是否需要在请求头中添加参数，是由接口决定的
  // 本接口需要我们传入token，并以如下的格式去传
    config.headers.Authorization = `Bearer ${tokenStr}`
  }
  return config
}, function (error) {
// Do something with request error
  return Promise.reject(error)
})
export default axios
axios.defaults.transformResponse = [function (data) {
  // 这里的data就是通过ajax请求回来的响应体的内容，它全是字符串，在交给页面使用之前，
  // 要转成对象
  // console.log(typeof data)
  // console.log(data)
  // JSONbig.parse：把json字符串转成对象。 如果json字符串有有大数，则把大数转成对象
  // 由于后端接口返回的数据可能不是一个标准的json字符串（导致JSONbig.parse出错），
  // 所以这里要做容错的处理。
  try {
    return BigNum.parse(data)
  } catch (err) {
    console.log('JSONbig出错了', err)
    return data
  }
}]
